package com.sddnytsh.body_buildingsystem.data.state

import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue

/**
 * 用户状态管理类
 * 用于存储和管理当前登录用户的信息
 */
object UserState {
    // 当前登录用户信息
    var currentUser by mutableStateOf<User?>(null)
    
    // 用户头像信息（独立管理，避免频繁刷新用户信息）
    var currentUserAvatar by mutableStateOf<String?>(null)
    
    // 是否已登录
    val isLoggedIn: Boolean
        get() = currentUser != null
    
    // 当前用户ID
    val currentUserId: Long?
        get() = currentUser?.id
    
    // 当前用户名
    val currentUsername: String?
        get() = currentUser?.username
    
    /**
     * 更新用户头像
     */
    fun updateUserAvatar(avatarUrl: String?) {
        currentUserAvatar = avatarUrl
    }
    
    /**
     * 清除当前用户（退出登录时调用）
     */
    fun clearCurrentUser() {
        currentUser = null
        currentUserAvatar = null
    }
    
    /**
     * 用户数据类
     */
    data class User(
        val id: Long,
        val username: String,
        val password: String? = null // 密码通常不存储在前端
    )
}
